package com.ruoyi.dm.mapper;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.dm.domain.BO.SateInfoBO;
import com.ruoyi.dm.domain.DataCollectionParam;
import com.ruoyi.dm.domain.DataManagementParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface DataCollectionMapper {

    void add(@Param("list")List<DataCollectionParam> list,@Param("tableName") String tableName);

    int isTable(@Param("tableName") String tableName);

    int isData(@Param("tableName") String tableName);

    void executeSql(@Param("sql") String sql);

    List<DataCollectionParam> selectList(@Param("selectSql") String selectSql);

    void edit(DataCollectionParam param);

    List<DataManagementParam> getByIds(@Param("list") List<Long> list);

    void deleteByIds(@Param("list") List<Long> list);

    List<String> getCatalogList(@Param("parentId") Long parentId);

    List<DataCollectionParam> getSourceList(DataManagementParam param);

    List<String> getTableStructure(DataCollectionParam param);

    void delete(@Param("id")Long id, @Param("tableName")String tableName);

    Integer countSql(@Param("countSql")String countSql);

    Integer inserBatch(@Param("list") List<Map<String, Object>> x,@Param("tableName")String tableName);

    List<Map<String, Object>> executeSql1(@Param("sql") String sql);

    Integer insertDcBatch(@Param("list") List<Map<String, Object>> x,@Param("tableName")String tableName);

    String getTemplatePath(@Param("dataId") Long dataId);

    List<Map<String, Object>> getIdList(@Param("tableName")String tableName, @Param("timeString") String timeString, @Param("startTime")String startTime, @Param("endTime")String endTime);

    void updateAtmWindField(DataCollectionParam param);

    Integer insertWindBatch(@Param("list") List<Map<String, Object>> x,@Param("tableName")String tableName);

    List<String> selectAllTableNames(@Param("schema")String schema);

    int exitsRecords(@Param("tableName") String tableName,@Param("startTime")String startTime, @Param("endTime")String endTime);

    //查询指定时间内 卫星的数据及 高度范围
    SateInfoBO checkSatellite(@Param("tableName") String tableName, @Param("startTime")String startTime, @Param("endTime")String endTime);

}
